home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / madwifi / net80211 / if_llc.h < prev    next >
C/C++ Source or Header  |  2006-05-11  |  7KB  |  194 lines

  1. /*-
  2.  * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer,
  10.  *    without modification.
  11.  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  12.  *    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
  13.  *    redistribution must be conditioned upon including a substantially
  14.  *    similar Disclaimer requirement for further binary redistribution.
  15.  * 3. Neither the names of the above-listed copyright holders nor the names
  16.  *    of any contributors may be used to endorse or promote products derived
  17.  *    from this software without specific prior written permission.
  18.  *
  19.  * Alternatively, this software may be distributed under the terms of the
  20.  * GNU General Public License ("GPL") version 2 as published by the Free
  21.  * Software Foundation.
  22.  *
  23.  * NO WARRANTY
  24.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  25.  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  26.  * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
  27.  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
  28.  * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
  29.  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  30.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  31.  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
  32.  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  33.  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  34.  * THE POSSIBILITY OF SUCH DAMAGES.
  35.  *
  36.  * $Id: if_llc.h 1441 2006-02-06 16:03:21Z mrenzmann $
  37.  */
  38.  
  39. /*
  40.  * Copyright (c) 1988, 1993
  41.  *    The Regents of the University of California.  All rights reserved.
  42.  *
  43.  * Redistribution and use in source and binary forms, with or without
  44.  * modification, are permitted provided that the following conditions
  45.  * are met:
  46.  * 1. Redistributions of source code must retain the above copyright
  47.  *    notice, this list of conditions and the following disclaimer.
  48.  * 2. Redistributions in binary form must reproduce the above copyright
  49.  *    notice, this list of conditions and the following disclaimer in the
  50.  *    documentation and/or other materials provided with the distribution.
  51.  * 3. All advertising materials mentioning features or use of this software
  52.  *    must display the following acknowledgement:
  53.  *    This product includes software developed by the University of
  54.  *    California, Berkeley and its contributors.
  55.  * 4. Neither the name of the University nor the names of its contributors
  56.  *    may be used to endorse or promote products derived from this software
  57.  *    without specific prior written permission.
  58.  *
  59.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  60.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  61.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  62.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  63.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  64.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  65.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  66.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  67.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  68.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  69.  * SUCH DAMAGE.
  70.  */
  71.  
  72. #ifndef _NET_IF_LLC_H_
  73. #define _NET_IF_LLC_H_
  74.  
  75. /*
  76.  * IEEE 802.2 Link Level Control headers, for use in conjunction with
  77.  * 802.{3,4,5} media access control methods.
  78.  *
  79.  * Headers here do not use bit fields due to shortcommings in many
  80.  * compilers.
  81.  */
  82.  
  83. struct llc {
  84.     u_int8_t llc_dsap;
  85.     u_int8_t llc_ssap;
  86.     union {
  87.         struct {
  88.         u_int8_t control;
  89.         u_int8_t format_id;
  90.         u_int8_t class;
  91.         u_int8_t window_x2;
  92.         } __packed type_u;
  93.         struct {
  94.         u_int8_t num_snd_x2;
  95.         u_int8_t num_rcv_x2;
  96.         } __packed type_i;
  97.         struct {
  98.         u_int8_t control;
  99.         u_int8_t num_rcv_x2;
  100.         } __packed type_s;
  101.         struct {
  102.             u_int8_t control;
  103.         /*
  104.          * We cannot put the following fields in a structure because
  105.          * the structure rounding might cause padding.
  106.          */
  107.         u_int8_t frmr_rej_pdu0;
  108.         u_int8_t frmr_rej_pdu1;
  109.         u_int8_t frmr_control;
  110.         u_int8_t frmr_control_ext;
  111.         u_int8_t frmr_cause;
  112.         } __packed type_frmr;
  113.         struct {
  114.         u_int8_t control;
  115.         u_int8_t org_code[3];
  116.         u_int16_t ether_type;
  117.         } __packed type_snap;
  118.         struct {
  119.         u_int8_t control;
  120.         u_int8_t control_ext;
  121.         } __packed type_raw;
  122.     } llc_un /* XXX __packed ??? */;
  123. } __packed;
  124.  
  125. struct frmrinfo {
  126.     u_int8_t frmr_rej_pdu0;
  127.     u_int8_t frmr_rej_pdu1;
  128.     u_int8_t frmr_control;
  129.     u_int8_t frmr_control_ext;
  130.     u_int8_t frmr_cause;
  131. } __packed;
  132.  
  133. #define    llc_control        llc_un.type_u.control
  134. #define    llc_control_ext        llc_un.type_raw.control_ext
  135. #define    llc_fid            llc_un.type_u.format_id
  136. #define    llc_class        llc_un.type_u.class
  137. #define    llc_window        llc_un.type_u.window_x2
  138. #define    llc_frmrinfo         llc_un.type_frmr.frmr_rej_pdu0
  139. #define    llc_frmr_pdu0        llc_un.type_frmr.frmr_rej_pdu0
  140. #define    llc_frmr_pdu1        llc_un.type_frmr.frmr_rej_pdu1
  141. #define    llc_frmr_control    llc_un.type_frmr.frmr_control
  142. #define    llc_frmr_control_ext    llc_un.type_frmr.frmr_control_ext
  143. #define    llc_frmr_cause        llc_un.type_frmr.frmr_cause
  144. #define    llc_snap        llc_un.type_snap
  145.  
  146. /*
  147.  * Don't use sizeof(struct llc_un) for LLC header sizes
  148.  */
  149. #define LLC_ISFRAMELEN 4
  150. #define LLC_UFRAMELEN  3
  151. #define LLC_FRMRLEN    7
  152. #define LLC_SNAPFRAMELEN 8
  153.  
  154. /*
  155.  * Unnumbered LLC format commands
  156.  */
  157. #define LLC_UI        0x3
  158. #define LLC_UI_P    0x13
  159. #define LLC_DISC    0x43
  160. #define    LLC_DISC_P    0x53
  161. #define LLC_UA        0x63
  162. #define LLC_UA_P    0x73
  163. #define LLC_TEST    0xe3
  164. #define LLC_TEST_P    0xf3
  165. #define LLC_FRMR    0x87
  166. #define    LLC_FRMR_P    0x97
  167. #define LLC_DM        0x0f
  168. #define    LLC_DM_P    0x1f
  169. #define LLC_XID        0xaf
  170. #define LLC_XID_P    0xbf
  171. #define LLC_SABME    0x6f
  172. #define LLC_SABME_P    0x7f
  173.  
  174. /*
  175.  * Supervisory LLC commands
  176.  */
  177. #define    LLC_RR        0x01
  178. #define    LLC_RNR        0x05
  179. #define    LLC_REJ        0x09
  180.  
  181. /*
  182.  * Info format - dummy only
  183.  */
  184. #define    LLC_INFO    0x00
  185.  
  186. /*
  187.  * ISO PDTR 10178 contains among others
  188.  */
  189. #define LLC_X25_LSAP    0x7e
  190. #define LLC_SNAP_LSAP    0xaa
  191. #define LLC_ISO_LSAP    0xfe
  192.  
  193. #endif /* _NET_IF_LLC_H_ */
  194.